signature IRVC2VC_STRUCTS =
sig
  structure Ir : IR
  structure Vc : VC
  sharing Ir.Atoms = Vc.Atoms = Ir.Types.Atoms
end

signature IRVC2VC =
sig
  include IRVC2VC_STRUCTS

  val tr_l : Ir.Le.lval -> Vc.lval
  val tr_e : Ir.Le.exp -> Vc.exp
  val top : (Ir.Atoms.Id.t * Ir.Le.exp) list -> (Ir.Atoms.Id.t * Vc.exp) list * (Ir.Atoms.Id.t * Vc.exp) list
end
